The present invention relates to circuits for controlling electromagnetic actuators, and, more particularly, to a method and circuit for controlling a voice coil motor for positioning the read/write head of a hard disk drive.
Voice coil motors (VCM) are used in several applications, and, in particular in hard disk drive systems (HDD) to load or unload a read/write head onto the disk. When the disk is stopped, it is necessary to drive the mechanical arm supporting the read/write head to a safe position away from the disk. This is done to reduce the possibility of damaging the disk from vibrations when not in use. Such an operation is called ramp unloading. The inverse operation (ramp loading) must be carried out when the HDD is turned on to read data stored in the disk.
The ramp unloading operation, depicted in FIG. 1, includes parking the read/write head on a ramp situated adjacent the disk. This operation prevents the head from hitting the disk surface, thus damaging it. This operation also makes available a larger disk space for writing operations because data cannot be written in the parked area of the head.
The ramp loading requires a circuit for driving the arm that carries the read/write head. This circuit controls the speed when the read/write head is loaded from the ramp to the disk surface, and for parking or unloading the head while avoiding accidental contact with the disk surface. The regulation of the speed of the arm supporting the head is carried out in several different ways. One approach is to measure the speed of the arm using external elements, such as optical encoders assembled inside the hard disk, as disclosed in U.S. Pat. No. 5,455,723.
The speed of the arm can be measured also by measuring the back electromotive force BEMF induced in the motor by the motion of the arm. In fact, the back electromotive force BEMF produced in the motor by the motion of the arm is proportional to the speed of the arm according to the following equation:   BEMF  =                    K        e            ·      ω        =                            K          e                armlength            ·      speed      
The variable Ke is a constant. Thus, the speed of the arm can be measured by measuring the BEMF of the motor. A way of deriving the value of the back electromotive force BEMF generated by the motion of the arm includes resolving the following equation   Vmot  =      BEMF    +          R      ·      i        +          L      ·                        ⅆ          i                          ⅆ          t                    
The variable Vmot is the voltage drop on the winding of the motor, R and L are the resistance and the inductance, respectively, of the winding of the motor, and i is the current flowing through the motor.
An alternative way of measuring the BEMF includes measuring the voltage drop Vmot on the winding of the motor when the current in the winding is zero. It is very important to derive a signal representing the speed of the arm allowing estimation of the speed in order to have an accurate regulation.
The known methods of regulating the speed of the arm using the BEMF do so by detecting with an amplifier the voltage drop Vmot on the two control nodes of the motor. This technique is affected by an error due to the offset of the amplifier and to the limited common mode rejection. Thus, the precision of the regulation cannot be very accurate.
A method of controlling a motor and a relative circuit not being affected by all the above mentioned errors would significantly improve the precision of the speed regulation of the arm.
It is an object of the present invention to provide a method of controlling the speed of a motor by detecting in a single-end, i.e., at a single node, the back electromotive force BEMF, comparing it with a reference value and producing a correction signal. The detection of the BEMF in a single-end eliminates errors due to the offset voltage and to the limited common mode rejection affecting a differential detection of the BEMF
More specifically, the method controls a voice coil motor (VCM) driven in a pulse width modulated (PWM) discontinuous mode through a full bridge output stage by setting in a high impedance state the output stage, and detecting a back electromotive force on the motor referenced to ground potential by connecting to a ground node an output node of the stage after the current flowing in the motor has decayed to zero. The control further includes biasing in a conduction state a transistor of the stage, and generating a PWM driving signal as a function of the detected back electromotive force and of a signal representative of a desired speed of the motor.
A further object of the invention is to provide a driving circuit for a voice coil motor (VCM) driven in a PWM mode through a full bridge stage. The driving circuit comprises a multiplexer having two inputs coupled to respective output nodes of the stage, an output node on which a back electromotive force induced in the motor is made available upon setting in a high impedance state the stage, and turning on a transistor of the conduction stage referenced to ground potential after the current through the motor has decayed to zero.
A controller compares a certain voltage representing the desired speed of the motor with the back electromotive force and outputs a correction signal. A pre-driver produces the driving signals of the transistor bridge as a function of the correction signal in order to set in the high impedance state the full bridge stage, and, when a certain delay time has elapsed, to connect a control node of the motor to a ground potential. Signals controlling the multiplexer coordinately turn on the switch coupled to the node of the full bridge stage not connected to the ground potential.